
import { getToken, setToken, removeToken, setTimeout } from '@/utils/auth.js'
// console.log(setTokeny)
import { login, getUserInfo, staffUser } from '@/api/user.js'

const state = {
  // 从本地获取 token
  token: getToken(),
  userInfo: {} // 之所以是 {} 不是 null userInfo的属性要给别人使用
}
const mutations = {
  // 储存数据到本地储存
  getChangeToken(state, token) {
    state.token = token
    setToken(token) // 缓存数据同步
  },
  // 删除数据并储存到本地
  removeToken(state) {
    state.token = null
    removeToken()
  },
  // 设置用户信息
  setUserInfo(state, result) {
    state.userInfo = result
  },
  // 删除用户信息
  removeUserInfo(state) {
    state.userInfo = {}
  }
}
const actions = {
  // 发起 登录 请求
  async updataLogin(content, data) {
    const result = await login(data)
    content.commit('getChangeToken', result)
    setTimeout() // 储存当前的时间戳
  },
  // 发起 获取用户个人信息
  async getUserInfo(content) {
    const result = await getUserInfo()
    const data = await staffUser(result.userId)
    content.commit('setUserInfo', { ...result, ...data })
    return result
  },
  // 退出登录
  logout(content) {
    content.commit('removeToken')
    content.commit('removeUserInfo')
  }
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
